package ace.module.weixin.core.impl.manager;

import ace.cmp.data.spring.data.jdbc.querydsl.rsql.core.manager.DtoManager;
import ace.module.weixin.api.model.dto.WxsLockDto;
import ace.module.weixin.core.impl.dao.entity.WxsLock;

/**
 * 数据库锁 spring data jdbc querydsl rsql manager.
 *
 * @author Caspar
 */
public interface WxsLockManager extends DtoManager<WxsLock, Long, WxsLockDto> {

  /**
   * 上锁
   *
   * @param key     锁key
   * @param ownerId 锁所有者id
   * @return true=锁成功 false=锁失败
   */
  boolean lock(String key, String ownerId);

  /**
   * 解锁
   *
   * @param key     锁key
   * @param ownerId 锁所有者id
   * @return true=解锁成功 false=解锁失败
   */
  boolean unlock(String key, String ownerId);

}